﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
public partial class KhachHang : System.Web.UI.Page
{
    SqlParameter[] p;
    clsXuLy ex = new clsXuLy();
    string frmName = "frmKhachHang";
    static int f_SuDung = 0, f_Them = 0, f_Sua = 0, f_Xoa = 0, f_XemTatCa = 0, f_InBaoCao = 0;
    public string Header = System.Configuration.ConfigurationSettings.AppSettings["Header"].ToString();
    static DataTable dt;
    static int PageNumber = 5;
    static int CurrentPage = 1;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (string.IsNullOrEmpty(Convert.ToString(Session["IDUser"])))
            gstGetMess("Hết phiên làm việc, vui lòng đăng nhập để tiếp tục", "Default.aspx");
        else
        {
            if (!IsPostBack)
            {
                

                string idnguoidung = Session["IDUser"].ToString();
                //  string sql = "select SuDung,Them,Sua,Xoa,InBaoCao,XemTatCa from XDAPhanQuyen where IDnguoidung='" + idnguoidung + "' and tag='" + frmName + "'";
                p = new SqlParameter[2];
                p[0] = new SqlParameter("@idnguoidung", idnguoidung);
                p[0].SqlDbType = SqlDbType.NVarChar;
                p[1] = new SqlParameter("@tag", frmName);
                p[1].SqlDbType = SqlDbType.NVarChar;
                DataTable dt2 = ex.GetData("sp_xdacacchucnang_list", p);
                if (dt2.Rows.Count > 0)
                {
                    f_SuDung = int.Parse(dt2.Rows[0]["SuDung"].ToString());
                    f_Them = int.Parse(dt2.Rows[0]["Them"].ToString());
                    f_Sua = int.Parse(dt2.Rows[0]["Sua"].ToString());
                    f_Xoa = int.Parse(dt2.Rows[0]["Xoa"].ToString());
                    f_InBaoCao = int.Parse(dt2.Rows[0]["InBaoCao"].ToString());
                    f_XemTatCa = int.Parse(dt2.Rows[0]["XemTatCa"].ToString());
                }
                if (f_SuDung.Equals(1))
                {

                    Title = "Quản lý Khách hàng | " + Header;

                    btnCancel_Click(sender, e);
                    LoadLoaiKhTK();
                    LoadKhTK();
                 
                }
                else
                    gstGetMess("Bạn không có quyền xem trang này", "Home.aspx");
                
            }
        }
    }
    protected void GV_RowCommand(object sender, GridViewCommandEventArgs e)
    {

        if (e.CommandName.Equals("Themcongtrinh"))
        {
            string ID = e.CommandArgument.ToString();
            hdID.Value = ID;
            Guid gID = new Guid(ID);
            p = new SqlParameter[1];
            p[0] = new SqlParameter("@IDs", gID);
            p[0].SqlDbType = SqlDbType.UniqueIdentifier;
            DataTable dt = ex.GetData("sp_xdadanhsachkhachhang_listid", p);
            if (dt.Rows.Count > 0)
            {
                try
                {
                    txttenkh.Text = dt.Rows[0]["TenKhachHang"].ToString();
                    txtnguoidaidien.Text = dt.Rows[0]["NguoiDaiDien"].ToString(); ;
                    txtsodienthoai.Text = dt.Rows[0]["SoDienThoai"].ToString(); ;
                    drloaikh.SelectedValue = dt.Rows[0]["LoaiKhachHang"].ToString();
                    txtcongtrinh.Enabled = false;
                    txthangmuc.Enabled = false;
                    drnhanvienkinhdoanh.Enabled = false;
                    
                    txtngaykyhd.Enabled = true;
                    
                    txtkmvanchuyen.Enabled = false;
                    txttungay.Enabled = false;
                    txthangmuc.Enabled = false;
                    txtdenngay.Enabled = false;
                    txtcongtrinh.Text = "";
                    txthangmuc.Text = "";
                    drnhanvienkinhdoanh.Text = "";
                    txtngaykyhd.Text = "";
                    txtkmvanchuyen.Text = "";
                    txttungay.Text = "";
                    txthangmuc.Text = "";
                    txtdenngay.Text = "";
                    btnThayDoiNVKD.Visible = false;
                    drloaikh.Enabled = true;

                    txttenkh.Enabled = true;

                    txtsodienthoai.Enabled = true;

                    txtnguoidaidien.Enabled = true;
                    btncapnhatcongtrinh.Visible = false;
                    btncapnhahangmuc.Visible = false;
                    btnxoahangmuc.Visible = false;
                    btnXoacongTrinh.Visible = false;
                }
                catch (Exception ax)
                {
                    gstGetMess("Có lỗi trong quá trình xem, xem trong file log", "");
                    ex.WriteLog(Server.MapPath("Log.txt"), DateTime.Now.ToString() + "\tKhách hàng\t" + ax.Message);
                }

            }
            btncapnhat.Visible = true;
            btnSave.Visible = false;
            btnAddHangMuc.Visible = true;
            btnAddCongTrinh.Visible = true;
            LoadAddkhachhangKinhDoanh();
            LoadCongTrinh();
        }
        else if (e.CommandName.Equals("suacongtrinh"))
        {
            string ID = e.CommandArgument.ToString();
            hdID.Value = ID;
            Guid gID = new Guid(ID);
            p = new SqlParameter[1];
            p[0] = new SqlParameter("@IDs", gID);
            p[0].SqlDbType = SqlDbType.UniqueIdentifier;
            DataTable dt = ex.GetData("sp_danhsachcongtrinh_List", p);
            if (dt.Rows.Count > 0)
            {
                try
                {
                    string hinht = dt.Rows[0]["trangthaicongtrinh"].ToString();
                    if (hinht.Equals("1"))
                        RadioButton1.Checked = true;
                    if (hinht.Equals("2"))
                        RadioButton3.Checked = true;
                    if (hinht.Equals("3"))
                        RadioButton2.Checked = true;
                    txtcongtrinh.Text = dt.Rows[0]["tencongtrinh"].ToString(); ;

                    
                    txttungay.Text = dt.Rows[0]["TuNgay"].ToString(); ;
                    txtdenngay.Text = dt.Rows[0]["DenNgay"].ToString(); ;
                    txtkmvanchuyen.Text = dt.Rows[0]["KmVanChuyen"].ToString(); ;
                    txtngaykyhd.Text = dt.Rows[0]["NgayKy"].ToString(); ;
                    drnhanvienkinhdoanh.SelectedValue = dt.Rows[0]["NhanVienKinhDoanh"].ToString();
                   
                    drloaikh.SelectedIndex = 0;
                    drloaikh.Enabled = false;
                    txttenkh.Text = "";
                    txttenkh.Enabled = false;
                    txtsodienthoai.Text = "";
                    txtsodienthoai.Enabled = false;
                    txtnguoidaidien.Text = "";
                    txtnguoidaidien.Enabled = false;
                    txtcongtrinh.Enabled = true;
                    txthangmuc.Enabled = true;
                    drnhanvienkinhdoanh.Enabled = true;
                    txtngaykyhd.Enabled = true;
                    txtkmvanchuyen.Enabled = true;
                    txttungay.Enabled = true;
                    txthangmuc.Enabled = true;
                    txtdenngay.Enabled = true;
                    txthangmuc.Enabled = false;
                    txthangmuc.Text = "";
                    btnAddCongTrinh.Visible = false;
                    btnAddHangMuc.Visible = false;
                    
                    btncapnhatcongtrinh.Visible = true;
                    btncapnhahangmuc.Visible = false;
                    btnXoacongTrinh.Visible = true;
                    btnxoahangmuc.Visible = false;
                    btnXoacongTrinh.Visible = true;
                    btnThayDoiNVKD.Visible = true;
                    ThayDoikhachhangKinhDoanh();
                }
                catch (Exception ax)
                {
                    gstGetMess("Có lỗi trong quá trình xem, xem trong file log", "");
                    ex.WriteLog(Server.MapPath("Log.txt"), DateTime.Now.ToString() + "\tKhách hàng\t" + ax.Message);
                }

            }
            btncapnhat.Visible = false;
            btnSave.Visible = false;
        }

        else if (e.CommandName.Equals("suahangmuc"))
        {
            string ID = e.CommandArgument.ToString();
            hdID.Value = ID;
            Guid gID = new Guid(ID);
            p = new SqlParameter[1];
            p[0] = new SqlParameter("@IDs", gID);
            p[0].SqlDbType = SqlDbType.UniqueIdentifier;
            DataTable dt = ex.GetData("sp_danhsachhangmuc_List", p);
            if (dt.Rows.Count > 0)
            {
                try
                {
                    txthangmuc.Text = dt.Rows[0]["TenHangMuc"].ToString(); ;

                    btnThayDoiNVKD.Visible = false;
                    drloaikh.SelectedIndex = 0;
                    drloaikh.Enabled = false;
                    txttenkh.Text = "";
                    txttenkh.Enabled = false;
                    txtsodienthoai.Text = "";
                    txtsodienthoai.Enabled = false;
                    txtnguoidaidien.Text = "";
                    txtnguoidaidien.Enabled = false;
                    txtcongtrinh.Enabled = false;

                    drnhanvienkinhdoanh.Enabled = true;
                    txtngaykyhd.Enabled = false;
                    txtkmvanchuyen.Enabled = false;
                    txttungay.Enabled = false;

                    txtdenngay.Enabled = false;

                    txtngaykyhd.Enabled = false;
                    txtkmvanchuyen.Enabled = false;
                    txttungay.Enabled = false;

                    txtdenngay.Enabled = false;
                    txthangmuc.Enabled = true;
                    txtngaykyhd.Text = "";
                    txtkmvanchuyen.Text = "";
                    txttungay.Text = "";
                    txtcongtrinh.Text = "";
                    drnhanvienkinhdoanh.SelectedIndex = 0;
                    drnhanvienkinhdoanh.Enabled = false;
                    txtdenngay.Text = "";

                    btnAddCongTrinh.Visible = false;
                    btnAddHangMuc.Visible = false;

                    btncapnhatcongtrinh.Visible = false;
                    btncapnhahangmuc.Visible = true;
                    btnxoahangmuc.Visible = true;
                    btnxoahangmuc.Visible = true;
                    btnXoacongTrinh.Visible = false;
                }
                catch (Exception ax)
                {
                    gstGetMess("Có lỗi trong quá trình xem, xem trong file log", "");
                    ex.WriteLog(Server.MapPath("Log.txt"), DateTime.Now.ToString() + "\tKhách hàng\t" + ax.Message);
                }

            }
            btncapnhat.Visible = false;
            btnSave.Visible = false;
        }

        else
            if (e.CommandName.Equals("Del"))
            {
                if (f_Xoa.Equals(1))
                {
                    try
                    {
                        string ID = e.CommandArgument.ToString();
                        hdID.Value = ID;
                        Guid gID = new Guid(ID);
                        p = new SqlParameter[1];
                        p[0] = new SqlParameter("@IDs", gID);
                        p[0].SqlDbType = SqlDbType.UniqueIdentifier;
                        ex.ExecuteNonQuerry("sp_xdakhachhang_Del", p);
                        btnCancel_Click(sender, e);
                        gstGetMess("Xóa thành công", "");
                    }
                    catch (Exception ax)
                    {
                        //gstGetMess("Có lỗi trong quá trình xóa, xem trong file log", "");
                        ex.WriteLog(Server.MapPath("Log.txt"), DateTime.Now.ToString() + "\tKhách hàng\t" + ax.Message);
                        gstGetMess(ax.Message, "");
                    }
                }
                else
                    gstGetMess("Bạn không có quyền xóa dữ liệu trên trang này", "");
            }
            else if (e.CommandName.Equals("khoataikhoan"))
            {
                if (f_Sua.Equals(1))
                {
                    string ID = e.CommandArgument.ToString();
                    hdID.Value = ID;
                    Guid gID = new Guid(ID);
                    p = new SqlParameter[1];
                    p[0] = new SqlParameter("@IDs", gID);
                    p[0].SqlDbType = SqlDbType.UniqueIdentifier;
                    DataTable dt = ex.GetData("sp_Khachhang_GetKhoaTk", p);
                    string t = dt.Rows[0]["trangthai"].ToString();
                    if (t.Equals("0"))
                    {
                        p = new SqlParameter[1];
                        p[0] = new SqlParameter("@IDs", gID);
                        p[0].SqlDbType = SqlDbType.UniqueIdentifier;
                        ex.ExecuteNonQuerry("sp_Khachhang_KhoaKH", p);
                        gstGetMess("Đã thanh lý khách hàng", "");
                        btnCancel_Click(sender, e);
                    }
                    else
                    {
                        p = new SqlParameter[1];
                        p[0] = new SqlParameter("@IDs", gID);
                        p[0].SqlDbType = SqlDbType.UniqueIdentifier;
                        ex.ExecuteNonQuerry("sp_Khachhang_MoKH", p);
                        gstGetMess("Đã mở khách hàng", "");
                        btnCancel_Click(sender, e);
                    }
                }
                gstGetMess("Bạn không có quyền  trên trang này", "");
            }
        
    }
    protected void btnAdd_Click(object sender, EventArgs e)
    {
        if (f_Them.Equals(1))
        {
            try
            {
                Guid ID = Guid.NewGuid();
                Guid IDCongTrinh = Guid.NewGuid();
                p = new SqlParameter[8];
                p[0] = new SqlParameter("@IDs", ID);
                p[0].SqlDbType = SqlDbType.UniqueIdentifier;
                p[1] = new SqlParameter("@LoaiKhachHang", GetGuidDrop(drloaikh));
                p[1].SqlDbType = SqlDbType.UniqueIdentifier;
                p[2] = new SqlParameter("@TenKhachHang", txttenkh.Text.Trim());
                p[2].SqlDbType = SqlDbType.NVarChar;
                p[3] = new SqlParameter("@NguoiDaiDien", txtnguoidaidien.Text.Trim());
                p[3].SqlDbType = SqlDbType.NVarChar;
                p[4] = new SqlParameter("@SoDienThoai", txtsodienthoai.Text.Trim());
                p[4].SqlDbType = SqlDbType.NVarChar;

                p[5] = new SqlParameter("@NguoiTao", Session["user"].ToString());
                p[5].SqlDbType = SqlDbType.NVarChar;
                p[6] = new SqlParameter("@NgayTao", DateTime.Now);
                p[6].SqlDbType = SqlDbType.SmallDateTime;
                p[7] = new SqlParameter("@Del", 1);
                p[7].SqlDbType = SqlDbType.Int;
                ex.ExecuteNonQuerry("sp_xdakhachhang_Add", p);
                if (txtcongtrinh.Text != "")
                {

                    p = new SqlParameter[9];
                    p[0] = new SqlParameter("@IDs", IDCongTrinh);
                    p[0].SqlDbType = SqlDbType.UniqueIdentifier;
                    p[1] = new SqlParameter("@MaKhachHang", ID);
                    p[1].SqlDbType = SqlDbType.UniqueIdentifier;                   
                    p[2] = new SqlParameter("@HinhThuc", 1);
                    p[2].SqlDbType = SqlDbType.Int;                
                    p[3] = new SqlParameter("@KmVanChuyen", double.Parse(txtkmvanchuyen.Text.Trim().Replace(",", "").Equals("") ? "0" : txtkmvanchuyen.Text.Trim().Replace(",", "")));
                    p[3].SqlDbType = SqlDbType.Float;
                    p[4] = new SqlParameter("@NgayKy", ex.GetNgayThang(txtngaykyhd.Text.Trim()));
                    p[4].SqlDbType = SqlDbType.SmallDateTime;
                    p[5] = new SqlParameter("@NguoiTao", Session["user"].ToString());
                    p[5].SqlDbType = SqlDbType.NVarChar;
                    p[6] = new SqlParameter("@NgayTao", DateTime.Now);
                    p[6].SqlDbType = SqlDbType.SmallDateTime;
                    p[7] = new SqlParameter("@Del", 1);
                    p[7].SqlDbType = SqlDbType.Int;
                    p[8] = new SqlParameter("@TenCongTrinh", txtcongtrinh.Text.Trim());
                    p[8].SqlDbType = SqlDbType.NVarChar;
                    ex.ExecuteNonQuerry("sp_xdacongtrinh_Add", p);


                    p = new SqlParameter[7];
                    p[0] = new SqlParameter("@IDs", Guid.NewGuid());
                    p[0].SqlDbType = SqlDbType.UniqueIdentifier;
                    p[1] = new SqlParameter("@CongTrinh", IDCongTrinh);
                    p[1].SqlDbType = SqlDbType.UniqueIdentifier;
                    p[2] = new SqlParameter("@NhanVienKinhDoanh", GetGuidDrop(drnhanvienkinhdoanh));
                    p[2].SqlDbType = SqlDbType.UniqueIdentifier;
                    p[3] = new SqlParameter("@TuNgay",ex.GetNgayThang(txttungay.Text.Trim()) );
                    p[3].SqlDbType = SqlDbType.SmallDateTime;
                    p[4] = new SqlParameter("@DenNgay", ex.GetNgayThang(txtdenngay.Text.Trim()));
                    p[4].SqlDbType = SqlDbType.SmallDateTime;
                    p[5] = new SqlParameter("@Del", 1);
                    p[5].SqlDbType = SqlDbType.Int;
                    p[6] = new SqlParameter("@TrangThai", RadioButton1.Checked ? 1 : RadioButton3.Checked ? 2 : 3);
                    p[6].SqlDbType = SqlDbType.Int;
                    ex.ExecuteNonQuerry("sp_XDACongTrinhNVKD_Add", p);
                }
                if (txthangmuc.Text != "")
                {
                    p = new SqlParameter[6];
                    p[0] = new SqlParameter("@IDs", Guid.NewGuid());
                    p[0].SqlDbType = SqlDbType.UniqueIdentifier;
                    p[1] = new SqlParameter("@MaCongTrinh", IDCongTrinh);
                    p[1].SqlDbType = SqlDbType.UniqueIdentifier;
                    p[2] = new SqlParameter("@TenHangMuc", txthangmuc.Text.Trim());
                    p[2].SqlDbType = SqlDbType.NVarChar;
                    p[3] = new SqlParameter("@NguoiTao", Session["user"].ToString());
                    p[3].SqlDbType = SqlDbType.NVarChar;
                    p[4] = new SqlParameter("@NgayTao", DateTime.Now);
                    p[4].SqlDbType = SqlDbType.SmallDateTime;
                    p[5] = new SqlParameter("@Del", 1);
                    p[5].SqlDbType = SqlDbType.Int;
                    ex.ExecuteNonQuerry("sp_xdahangmuc_Add", p);
                }
                btnCancel_Click(sender, e);
                gstGetMess("Lưu thành công", "");
            }
            catch (Exception ax)
            {
                gstGetMess("Có lỗi trong quá trình lưu, xem trong file log", "");
                ex.WriteLog(Server.MapPath("Log.txt"), DateTime.Now.ToString() + "\tKhách hàng\t" + ax.Message);
            }
        }
        else
            gstGetMess("Bạn không có quyền thêm dữ liệu trên trang này", "");
    }
    protected void btnUpdate_Click(object sender, EventArgs e)
    {
        if (f_Sua.Equals(1))
        {
            try
            {
                Guid gID = new Guid(hdID.Value);
                p = new SqlParameter[8];
                p[0] = new SqlParameter("@IDs", gID);
                p[0].SqlDbType = SqlDbType.UniqueIdentifier;
                p[1] = new SqlParameter("@LoaiKhachHang", GetGuidDrop(drloaikh));
                p[1].SqlDbType = SqlDbType.UniqueIdentifier;
                p[2] = new SqlParameter("@TenKhachHang", txttenkh.Text.Trim());
                p[2].SqlDbType = SqlDbType.NVarChar;
                p[3] = new SqlParameter("@NguoiDaiDien", txtnguoidaidien.Text.Trim());
                p[3].SqlDbType = SqlDbType.NVarChar;
                p[4] = new SqlParameter("@SoDienThoai", txtsodienthoai.Text.Trim());
                p[4].SqlDbType = SqlDbType.NVarChar;

                p[5] = new SqlParameter("@NguoiTao", Session["user"].ToString());
                p[5].SqlDbType = SqlDbType.NVarChar;
                p[6] = new SqlParameter("@NgayTao", DateTime.Now);
                p[6].SqlDbType = SqlDbType.SmallDateTime;
                p[7] = new SqlParameter("@Del", 1);
                p[7].SqlDbType = SqlDbType.Int;
                ex.ExecuteNonQuerry("sp_xdakhachhang_Update", p);
                btnCancel_Click(sender, e);
                gstGetMess("Cập nhật thành công", "");
            }
            catch (Exception ax)
            {
                gstGetMess("Có lỗi trong quá trình cập nhật, xem trong file log", "");
                ex.WriteLog(Server.MapPath("Log.txt"), DateTime.Now.ToString() + "\tkhách hàng\t" + ax.Message);
            }
        }
        else
            gstGetMess("Bạn không có quyền sửa dữ liệu trên trang này", "");
    }
    protected void btnCancel_Click(object sender, EventArgs e)
    {
        p = new SqlParameter[2];
        p[0] = new SqlParameter("@PageNumber", 1);
        p[0].SqlDbType = SqlDbType.Int;
        p[1] = new SqlParameter("@RowspPage", PageNumber);
        p[1].SqlDbType = SqlDbType.Int;
        GV.DataSource = ex.GetData("sp_xdadanhsachkhachhang_list",p);
        GV.DataBind();
        txttenkh.Text = "";
        txtnguoidaidien.Text = "";
        txtsodienthoai.Text = "";
        txtcongtrinh.Text = "";
        txthangmuc.Text = "";
        RadioButton1.Checked = true;
        txttungay.Text = "";
        txtdenngay.Text = "";
        txtkmvanchuyen.Text = "";
        txtngaykyhd.Text = "";
        LoadkhachhangKinhDoanh();
        LoadLoaiKh();
        drloaikh.SelectedIndex = 0;
        drnhanvienkinhdoanh.SelectedIndex = 0;
        btnSave.Visible = true;
        btncapnhat.Visible = false;
        btnAddCongTrinh.Visible = false;
        btnAddHangMuc.Visible = false;
        btncapnhatcongtrinh.Visible = false;
        btncapnhahangmuc.Visible = false;
        btnThayDoiNVKD.Visible = false;
        drloaikh.Enabled = true;
        txttenkh.Enabled = true;
        txtsodienthoai.Enabled = true;
        txtnguoidaidien.Enabled = true;
        txtcongtrinh.Enabled = true;
        drnhanvienkinhdoanh.Enabled = true;
        txtngaykyhd.Enabled = true;
        txtkmvanchuyen.Enabled = true;
        txttungay.Enabled = true;
        txtdenngay.Enabled = true;
        txtngaykyhd.Enabled = true;
        txtkmvanchuyen.Enabled = true;
        txttungay.Enabled = true;
        txtdenngay.Enabled = true;
        txthangmuc.Enabled = true;
        drnhanvienkinhdoanh.SelectedIndex = 0;
        drnhanvienkinhdoanh.Enabled = true;
        btnxoahangmuc.Visible = false;
        btnXoacongTrinh.Visible = false;
        txtdoinvkddengay.Text = "";
        txtdoinvkdkhtungay.Text = "";
        drnvkd.SelectedIndex = 0;
    }
    private void gstGetMess(string gstMess, string gstLink)
    {
        if (gstLink == "")
            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), " ", "alert('" + gstMess + "')", true);
        else
            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), " ", "alert('" + gstMess + "');window.location.href='" + gstLink + "'", true);

    }

    void LoadkhachhangKinhDoanh()
    {
        drnhanvienkinhdoanh.Items.Clear();
        drnhanvienkinhdoanh.DataSource = ex.GetData("sp_xdanhanvienkinhdoanh_ListDrop");
        drnhanvienkinhdoanh.DataBind();
        drnhanvienkinhdoanh.Items.Insert(0, new ListItem("--Chọn nhân viên kinh doanh--", ""));
        drnhanvienkinhdoanh.SelectedIndex = 0;
    }
    void ThayDoikhachhangKinhDoanh()
    {
        drnvkd.Items.Clear();
        drnvkd.DataSource = ex.GetData("sp_xdanhanvienkinhdoanh_ListDrop");
        drnvkd.DataBind();
        drnvkd.Items.Insert(0, new ListItem("--Chọn nhân viên kinh doanh--", ""));
        drnvkd.SelectedIndex = 0;
    }
    void LoadAddkhachhangKinhDoanh()
    {
        draddnhanvienkinhdoanh.Items.Clear();
        draddnhanvienkinhdoanh.DataSource = ex.GetData("sp_xdanhanvienkinhdoanh_ListDrop");
        draddnhanvienkinhdoanh.DataBind();
        draddnhanvienkinhdoanh.Items.Insert(0, new ListItem("--Chọn nhân viên kinh doanh--", ""));
        draddnhanvienkinhdoanh.SelectedIndex = 0;
    }
    void LoadLoaiKh()
    {
        drloaikh.Items.Clear();
        drloaikh.DataSource = ex.GetData("sp_xdaloaikhachhang_ListDrop");
        drloaikh.DataBind();
        drloaikh.Items.Insert(0, new ListItem("--Chọn loại khách hàng--", ""));
        drloaikh.SelectedIndex = 0;
    }

    public object GetGuidDrop(DropDownList dl)
    {
        try
        {
            if (dl.SelectedValue == "") return DBNull.Value;
            else
            {
                Guid ID = new Guid(dl.SelectedValue);
                return ID;
            }
        }
        catch
        {
            return DBNull.Value;
        }
    }

    protected void btnAddSP_Click(object sender, EventArgs e)
    {
        if (f_Them.Equals(1))
        {
            try
            {
                Guid CongTrinhID = Guid.NewGuid();
                Guid gID = new Guid(hdID.Value);

                p = new SqlParameter[9];
                p[0] = new SqlParameter("@IDs", CongTrinhID);
                p[0].SqlDbType = SqlDbType.UniqueIdentifier;
                p[1] = new SqlParameter("@MaKhachHang", gID);
                p[1].SqlDbType = SqlDbType.UniqueIdentifier;
                p[2] = new SqlParameter("@HinhThuc", rdCuaCongTY.Checked ? 1 : rdiKY.Checked ? 2 : 3);
                p[2].SqlDbType = SqlDbType.Int;              
                p[3] = new SqlParameter("@KmVanChuyen", txtaddkmvanchuyen.Text.Trim());
                p[3].SqlDbType = SqlDbType.Float;
                p[4] = new SqlParameter("@NgayKy", ex.GetNgayThang(txtaddngaykyhd.Text.Trim()));
                p[4].SqlDbType = SqlDbType.SmallDateTime;
                p[5] = new SqlParameter("@NguoiTao", Session["user"].ToString());
                p[5].SqlDbType = SqlDbType.NVarChar;
                p[6] = new SqlParameter("@NgayTao", DateTime.Now);
                p[6].SqlDbType = SqlDbType.SmallDateTime;
                p[7] = new SqlParameter("@Del", 1);
                p[7].SqlDbType = SqlDbType.Int;
                p[8] = new SqlParameter("@TenCongTrinh", txtaddcongtrinh.Text.Trim());
                p[8].SqlDbType = SqlDbType.NVarChar;
                ex.ExecuteNonQuerry("sp_xdacongtrinh_Add", p);
                p = new SqlParameter[7];
                p[0] = new SqlParameter("@IDs", Guid.NewGuid());
                p[0].SqlDbType = SqlDbType.UniqueIdentifier;
                p[1] = new SqlParameter("@CongTrinh", CongTrinhID);
                p[1].SqlDbType = SqlDbType.UniqueIdentifier;
                p[2] = new SqlParameter("@NhanVienKinhDoanh", GetGuidDrop(draddnhanvienkinhdoanh));
                p[2].SqlDbType = SqlDbType.UniqueIdentifier;
                p[3] = new SqlParameter("@TuNgay", ex.GetNgayThang(txttungay.Text.Trim()));
                p[3].SqlDbType = SqlDbType.SmallDateTime;
                p[4] = new SqlParameter("@DenNgay", ex.GetNgayThang(txtdenngay.Text.Trim()));
                p[4].SqlDbType = SqlDbType.SmallDateTime;
                p[5] = new SqlParameter("@Del", 1);
                p[5].SqlDbType = SqlDbType.Int;
                p[6] = new SqlParameter("@TrangThai", rdCuaCongTY.Checked ? 1 : rdiKY.Checked ? 2 : 3);
                p[6].SqlDbType = SqlDbType.Int;
                ex.ExecuteNonQuerry("sp_XDACongTrinhNVKD_Add", p);
                btnCancel_Click(sender, e);
                gstGetMess("Lưu thành công", "");
            }
            catch (Exception ax)
            {
                gstGetMess("Có lỗi trong quá trình lưu, xem trong file log", "");
                ex.WriteLog(Server.MapPath("Log.txt"), DateTime.Now.ToString() + "\tKhách hàng\t" + ax.Message);
            }
        }
        else
            gstGetMess("Bạn không có quyền thêm dữ liệu trên trang này", "");
    }
    private void LoadCongTrinh()
    {
        Guid gID = new Guid(hdID.Value);
        p = new SqlParameter[1];
        p[0] = new SqlParameter("@ID", gID);
        p[0].SqlDbType = SqlDbType.UniqueIdentifier;
        draddcongtrinh.Items.Clear();
        draddcongtrinh.DataSource = ex.GetData("sp_CongTrinh_ListByCongTrinh", p);
        draddcongtrinh.DataBind();
        draddcongtrinh.Items.Insert(0, new ListItem("--Chọn công trình--", ""));
        draddcongtrinh.SelectedIndex = 0;

    }
    protected void btnHangMuc_Click(object sender, EventArgs e)
    {
        p = new SqlParameter[6];
        p[0] = new SqlParameter("@IDs", Guid.NewGuid());
        p[0].SqlDbType = SqlDbType.UniqueIdentifier;
        p[1] = new SqlParameter("@MaCongTrinh", GetGuidDrop(draddcongtrinh));
        p[1].SqlDbType = SqlDbType.UniqueIdentifier;
        p[2] = new SqlParameter("@TenHangMuc", txtaddhangmuc.Text.Trim());
        p[2].SqlDbType = SqlDbType.NVarChar;
        p[3] = new SqlParameter("@NguoiTao", Session["user"].ToString());
        p[3].SqlDbType = SqlDbType.NVarChar;
        p[4] = new SqlParameter("@NgayTao", DateTime.Now);
        p[4].SqlDbType = SqlDbType.SmallDateTime;
        p[5] = new SqlParameter("@Del", 1);
        p[5].SqlDbType = SqlDbType.Int;
        ex.ExecuteNonQuerry("sp_xdahangmuc_Add", p);
        btnCancel_Click(sender, e);
        gstGetMess("Lưu thành công", "");
    }
    protected void btncapnhatcongtrinh_Click(object sender, EventArgs e)
    {
        if (f_Sua.Equals(1))
        {
            try
            {
                Guid gID = new Guid(hdID.Value);
                p = new SqlParameter[3];
                p[0] = new SqlParameter("@IDs", gID);
                p[0].SqlDbType = SqlDbType.UniqueIdentifier;

                p[1] = new SqlParameter("@TenCongTrinh", txtcongtrinh.Text.Trim());
                p[1].SqlDbType = SqlDbType.NVarChar;
                p[2] = new SqlParameter("@Km",txtkmvanchuyen.Text.Trim());
                p[2].SqlDbType = SqlDbType.Float;
               
                ex.ExecuteNonQuerry("sp_xdacongtrinh_Update", p);


                p = new SqlParameter[5];
                p[0] = new SqlParameter("@IDs", gID);
                p[0].SqlDbType = SqlDbType.UniqueIdentifier;

                p[1] = new SqlParameter("@TuNgay", ex.GetNgayThang(txttungay.Text.Trim()));
                p[1].SqlDbType = SqlDbType.SmallDateTime;
                p[2] = new SqlParameter("@DenNgay", ex.GetNgayThang(txtdenngay.Text.Trim()));
                p[2].SqlDbType = SqlDbType.SmallDateTime;
                p[3] = new SqlParameter("@NhanVien",ex.GetGuid(drnhanvienkinhdoanh.SelectedValue));
                p[3].SqlDbType = SqlDbType.UniqueIdentifier;
                p[4] = new SqlParameter("@TrangThai", RadioButton1.Checked ? 1 : RadioButton3.Checked ? 2 : 3);
                p[4].SqlDbType = SqlDbType.Int;
                ex.ExecuteNonQuerry("sp_xdacongtrinhNVKD_Update_KH", p);
                btnCancel_Click(sender, e);
                gstGetMess("Cập nhật thành công", "");
            }
            catch (Exception ax)
            {
                gstGetMess("Có lỗi trong quá trình cập nhật, xem trong file log", "");
                ex.WriteLog(Server.MapPath("Log.txt"), DateTime.Now.ToString() + "\tkhách hàng\t" + ax.Message);
            }
        }
        else
            gstGetMess("Bạn không có quyền sửa dữ liệu trên trang này", "");
    }
    protected void btncapnhahangmuc_Click(object sender, EventArgs e)
    {
        if (f_Sua.Equals(1))
        {
            try
            {
                Guid gID = new Guid(hdID.Value);
                p = new SqlParameter[5];
                p[0] = new SqlParameter("@IDs", gID);
                p[0].SqlDbType = SqlDbType.UniqueIdentifier;
                p[1] = new SqlParameter("@TenHangMuc", txthangmuc.Text.Trim());
                p[1].SqlDbType = SqlDbType.NVarChar;
                p[2] = new SqlParameter("@NguoiTao", Session["user"].ToString());
                p[2].SqlDbType = SqlDbType.NVarChar;
                p[3] = new SqlParameter("@NgayTao", DateTime.Now);
                p[3].SqlDbType = SqlDbType.SmallDateTime;
                p[4] = new SqlParameter("@Del", 1);
                p[4].SqlDbType = SqlDbType.Int;
                ex.ExecuteNonQuerry("sp_xdahangmuc_Update", p);
                btnCancel_Click(sender, e);
                gstGetMess("Cập nhật thành công", "");
            }
            catch (Exception ax)
            {
                gstGetMess("Có lỗi trong quá trình cập nhật, xem trong file log", "");
                ex.WriteLog(Server.MapPath("Log.txt"), DateTime.Now.ToString() + "\tkhách hàng\t" + ax.Message);
            }
        }
        else
            gstGetMess("Bạn không có quyền sửa dữ liệu trên trang này", "");
    }
    protected void btnXoacongTrinh_Click(object sender, EventArgs e)
    {
        if (f_Xoa.Equals(1))
        {
            try
            {
                Guid gID = new Guid(hdID.Value);
                p = new SqlParameter[1];
                p[0] = new SqlParameter("@IDs", gID);
                p[0].SqlDbType = SqlDbType.UniqueIdentifier;

                ex.ExecuteNonQuerry("sp_xdacongtrinh_Del", p);
                btnCancel_Click(sender, e);
                gstGetMess("Xóa thành công", "");
            }
            catch (Exception ax)
            {
                gstGetMess("Có lỗi trong quá trình xóa, xem trong file log", "");
                ex.WriteLog(Server.MapPath("Log.txt"), DateTime.Now.ToString() + "\tKhách hàng\t" + ax.Message);
            }
        }
        else
            gstGetMess("Bạn không có quyền xóa dữ liệu trên trang này", "");
    }
    protected void btnxoahangmuc_Click(object sender, EventArgs e)
    {
        if (f_Xoa.Equals(1))
        {
            try
            {
                Guid gID = new Guid(hdID.Value);
                p = new SqlParameter[1];
                p[0] = new SqlParameter("@IDs", gID);
                p[0].SqlDbType = SqlDbType.UniqueIdentifier;

                ex.ExecuteNonQuerry("sp_xdahangmuc_Del", p);
                btnCancel_Click(sender, e);
                gstGetMess("Xóa  thành công", "");
            }
            catch (Exception ax)
            {
                gstGetMess("Có lỗi trong quá trình xóa, xem trong file log", "");
                ex.WriteLog(Server.MapPath("Log.txt"), DateTime.Now.ToString() + "\tKhách hàng\t" + ax.Message);
            }
        }
        else
            gstGetMess("Bạn không có quyền xóa dữ liệu trên trang này", "");
    }
    protected void btnFirst_Click(object sender, EventArgs e)
    {
        CurrentPage = 1;
        p = new SqlParameter[2];
        p[0] = new SqlParameter("@PageNumber", CurrentPage);
        p[0].SqlDbType = SqlDbType.Int;
        p[1] = new SqlParameter("@RowspPage", PageNumber);
        p[1].SqlDbType = SqlDbType.Int;

        GV.DataSource = ex.GetData("sp_xdadanhsachkhachhang_list", p);
        GV.DataBind();

        btnPre.Enabled = false;
        btnNext.Enabled = true;
        btnFirst.Enabled = false;
    }
    protected void btnPre_Click(object sender, EventArgs e)
    {
        if (CurrentPage > 1)
        {
            CurrentPage--;
            btnPre.Enabled = true;
            btnNext.Enabled = true;
            btnFirst.Enabled = true;

            p = new SqlParameter[2];
            p[0] = new SqlParameter("@PageNumber", CurrentPage);
            p[0].SqlDbType = SqlDbType.Int;
            p[1] = new SqlParameter("@RowspPage", PageNumber);
            p[1].SqlDbType = SqlDbType.Int;

            GV.DataSource = ex.GetData("sp_xdadanhsachkhachhang_list", p);
            GV.DataBind();

        }
        else
        {
            btnFirst.Enabled = false;
            btnPre.Enabled = false;
            btnNext.Enabled = true;
        }
    }
    protected void btnNext_Click(object sender, EventArgs e)
    {
        CurrentPage++;
        p = new SqlParameter[2];
        p[0] = new SqlParameter("@PageNumber", CurrentPage);
        p[0].SqlDbType = SqlDbType.Int;
        p[1] = new SqlParameter("@RowspPage", PageNumber);
        p[1].SqlDbType = SqlDbType.Int;

        GV.DataSource = ex.GetData("sp_xdadanhsachkhachhang_list", p);
        GV.DataBind();

        if (GV.Rows.Count.Equals(0))
        {
            btnPre.Enabled = true;
            btnNext.Enabled = false;
        }
        else
        {
            btnPre.Enabled = true;
            btnNext.Enabled = true;
        }
        btnFirst.Enabled = true;
    }
    void LoadLoaiKhTK()
    {
        dlloaikh.Items.Clear();
        dlloaikh.DataSource = ex.GetData("sp_xdaloaikhachhang_ListDrop");
        dlloaikh.DataBind();
        dlloaikh.Items.Insert(0, new ListItem("--Chọn loại khách hàng--", ""));
        dlloaikh.SelectedIndex = 0;
    }
    void LoadKhTK()
    {
        dlkh.Items.Clear();
        dlkh.DataSource = ex.GetData("sp_KhachHang_ListDrop_LoadKH");
        dlkh.DataBind();
        dlkh.Items.Insert(0, new ListItem("--Chọn khách hàng--", ""));
        dlkh.SelectedIndex = 0;
    }
    protected void dlloaikh_SelectedIndexChanged(object sender, EventArgs e)
    {

        if (dlloaikh.SelectedIndex > 0)
        {
            p = new SqlParameter[1];
            p[0] = new SqlParameter("@IDs", GetGuidDrop(dlloaikh));
            p[0].SqlDbType = SqlDbType.UniqueIdentifier;
            dlkh.Items.Clear();
            dlkh.DataSource = ex.GetData("sp_KhachHang_ListDrop_LoadKH_TheoLoaiKH", p);
            dlkh.DataBind();
            dlkh.Items.Insert(0, new ListItem("--Chọn khách hàng--", ""));
            dlkh.SelectedIndex = 0;
            p = new SqlParameter[1];
            p[0] = new SqlParameter("@LKH", GetGuidDrop(dlloaikh));
            p[0].SqlDbType = SqlDbType.UniqueIdentifier;
            GV.DataSource = ex.GetData("sp_xdadanhsachkhachhang_list_TKTheoLKH", p);
            GV.DataBind();
        }
        else
        {
            LoadKhTK();
            btnCancel_Click(sender, e);
        }
    }
    protected void btnTK_Click(object sender, EventArgs e)
    {

        if (dlkh.SelectedIndex > 0)
        {
           
            p = new SqlParameter[1];
            p[0] = new SqlParameter("@KH", GetGuidDrop(dlkh));
            p[0].SqlDbType = SqlDbType.UniqueIdentifier;
            GV.DataSource = ex.GetData("sp_xdadanhsachkhachhang_list_TKTheoKH", p);
            GV.DataBind();
        }
        else
        {
            dlloaikh_SelectedIndexChanged(sender, e);
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Guid gID = new Guid(hdID.Value);
        p = new SqlParameter[7];
        p[0] = new SqlParameter("@IDs", Guid.NewGuid());
        p[0].SqlDbType = SqlDbType.UniqueIdentifier;
        p[1] = new SqlParameter("@CongTrinh", gID);
        p[1].SqlDbType = SqlDbType.UniqueIdentifier;
        p[2] = new SqlParameter("@NhanVienKinhDoanh", GetGuidDrop(drnvkd));
        p[2].SqlDbType = SqlDbType.UniqueIdentifier;
        p[3] = new SqlParameter("@TuNgay", ex.GetNgayThang(txtdoinvkdkhtungay.Text.Trim()));
        p[3].SqlDbType = SqlDbType.SmallDateTime;
        p[4] = new SqlParameter("@DenNgay", ex.GetNgayThang(txtdoinvkddengay.Text.Trim()));
        p[4].SqlDbType = SqlDbType.SmallDateTime;
        p[5] = new SqlParameter("@Del", 1);
        p[5].SqlDbType = SqlDbType.Int;
        p[6] = new SqlParameter("@TrangThai", RadioButton4.Checked ? 1 : RadioButton6.Checked ? 2 : 3);
        p[6].SqlDbType = SqlDbType.Int;
        ex.ExecuteNonQuerry("sp_XDACongTrinhNVKD_Add", p);
        btnCancel_Click(sender, e);
        gstGetMess("Lưu thành công", "");
    }


    protected void drloaikh_SelectedIndexChanged(object sender, EventArgs e)
    {

    }
   
}